package org.example.cake.service;

import org.apache.ibatis.annotations.Param;
import org.example.cake.entity.Ordercake;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface OrdercakeService {


    int deleteByPrimaryKey(Integer orderid);

    int insert(Ordercake record);

    int insertSelective(Ordercake record);

    Ordercake selectByPrimaryKey(Integer orderid);

    int updateByPrimaryKeySelective(Ordercake record);

    int updateByPrimaryKey(Ordercake record);

    /**
     * 根据用户id查询不同订单状态的订单信息
     * @param userid 用户id
     * @return 集合
     */
    public List<Ordercake> selectOrdercake(Integer userid);
    /**
     * 点击申请退款就修改退款的类型从0[未退款]改为1[退款中]
     * @param orderid 订单id
     * @return 收影响的行数
     */
    public int applyrefund(@Param("orderid") Integer orderid,@Param("userreason") String userreason);

    /**
     * 根据用户id查询他申请提交的订单
     * @param userid 用户id
     * @return 订单集合
     */
    public List<Ordercake> selectapplyfund(Integer userid,
                                           String cakeName,
                                           String orderstatus,
                                           String ordernum);
    public int updateRefundsStatus(Integer orderid, Integer refund);


    /**
     * 新增订单
     * @Date 2025-08-04 谭丽那
     * @param ordercake
     * @return
     */
    Integer addcakeorder(Ordercake ordercake);

    /**
     * 修改订单总数
     * @param count
     * @param payid
     * @return
     */
    Integer updateordercount(Integer count, int payid);

    /**
     * 获取今日订单总数
     * @return
     */
    Integer getTodayOrderCount();

    /**
     * 获取今日订单
     * @param lastSevenDay 日期
     * @return
     */
    Integer getTodayOrderCount(String lastSevenDay);

    /**
     * 获取这个月的总数
     * @return
     */
    Integer getMonthOrderCount();

    String gettodayMoney();

    String getmonthMoney();

    /**
     * 根据用户id查询他申请提交的订单小程序端
     * @param userid 用户id
     * @return 订单集合
     */
    public List<Ordercake> selectapplyfundFront(@Param("userid") Integer userid);

    /**
     * 商家不同意退款方法
     * @param shopreply 商家回复
     * @param orderid 订单id
     * @return 受影响的行数
     */
    public Integer refundReply(@Param("shopreply")  String shopreply,@Param("orderid") Integer orderid);

    /**
     * 查询今日的订单
     * @return 订单集合
     */
    public List<Ordercake> selectTodayOrder();

    /**
     * 用户确认收货
     * @param orderid  订单id
     * @return 受影响的行数
     */
    public int confirmGoods(@Param("orderid") Integer orderid);
    /**
     * 用户删除订单
     * @param orderid 订单id
     * @return 受影响的行数
     */
    public int deleteGoods(@Param("orderid") Integer orderid);
    /**
     * 接单
     * @param orderid 订单id
     * @return 受影响的行数
     */
    public int updateGoods(@Param("orderid") Integer orderid);
}
